import {request} from "../../static/core/request";
import {BASE_URL, ENV} from "../../static/core/env";

export default {
  namespaced: true,
  state: {
    token: null,
    userInfo: null,
  },
  mutations: {
    setToken(state, token) {
      state.token = token;
      uni.setStorageSync("token", token);
    },
    setUserInfo(state, userInfo) {
      state.userInfo = userInfo;
      uni.removeStorageSync("userInfo");
    }
  },
  actions: {
    login({ commit }, { username, password }) {
      return new Promise((resolve, reject) => {
        request({
          url: "mlogin",
          method: "POST",
          data: {
            username: username,
            password: password
          }
        }).then(({ token }) => {
          commit("setToken", token);
          resolve();
        }).catch((err) => {
          reject(err);
        });
      });
    },
    logout({ commit }) {
      return new Promise((resolve, reject) => {
        commit("setToken", null);
        commit("setUserInfo", null);
        uni.removeStorageSync("token");
        console.log('用户退出了', this.state.token);
        resolve();
      });
    }
    // async getInfo({ commit }) {
    //   // if (this.state.userInfo) {
    //   //   return this.state.userInfo;
    //   // } else {
    //   //   try {
    //   //     const { data } = await request({
    //   //       url: "getInfo",
    //   //       method: "GET",
    //   //     });
    //   //     commit("setUserInfo", data);
    //   //     return data;
    //   //   } catch (err) {
    //   //     throw err;
    //   //   }
    //   // }
    //   return new Promise((resolve, reject) => {
    //     if (this.state.userInfo) {
    //       resolve(this.state.userInfo);
    //       return
    //     }
    //     request({
    //       url: "getInfo?token=" + this.state.userInfo(),
    //       method: "GET",
    //     }).then((res) => {
    //       commit("setUserInfo", res);
    //       resolve(res);
    //     }).catch((err) => {
    //       reject(err);
    //     });
    //   });
    // }
  },
  getters: {
    token: state => {
      console.log(state.token, uni.getStorageSync("token"), 999);
      return state.token || uni.getStorageSync("token") || null;
    },
    userInfo: state => {
      return state.userInfo || uni.getStorageSync("userInfo") || null;
    }
  }
}
